perm filename YSP[W88,JMC] blob sn#855353 filedate 1988-03-29 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00008 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	%ysp[w88,jmc]		Another attack on the Yale shooting problem
C00003 00003	Propositional version
C00004 00004	Quantified version
C00006 00005	Situation calculus version (with minimal other quantification)
C00008 00006	persistent p ∧ holds(p,t) ∧ (∀e)(causes(e,not p,t) ⊃ ¬occurs(e,t)) ⊃ holds(p,t+1)
C00009 00007	(∀p t)(holds(p,t) ∧ (∀e)(causes(e,not p,t) ⊃ ¬occurs(e,t)) ⊃ holds(p,t+1))
C00011 00008	∂29-Mar-88  1324	VAL 	re: YSP   
C00012 ENDMK
C⊗;
%ysp[w88,jmc]		Another attack on the Yale shooting problem
Old version with unintended models

holds(p,s) ∧ persistent p ∧ ¬ab1(p,e,s) ⊃ holds(p,r(e,s))

persistent alive
persistent loaded

holds(loaded,r(load,s))
holds(loaded,s) ⊃ ¬holds(alive,r(shoot,s))

holds(alive,S0)

Propositional version

¬ul* ∧ ul ⊃ ab1
ul* ⊃ ul

¬shoot* ∧ shoot ⊃ ab2
shoot* ⊃ shoot

¬heartattack* ∧ heartattack ⊃ ab3
heartattack* ⊃ heartattack

¬ul*
shoot*
¬heartattack*

shoot ∧ ¬ul ∧ ¬ab4 ⊃ ¬alive ∧ ¬ab17

heartattack ∧ ¬ab5 ⊃ ¬alive ∧ ¬ab17

¬ab17 ∧ ¬shoot ∧ ¬heartattack ⊃ alive


Quantified version

∀prop.¬asserted prop ∧ holds prop ⊃ ab(prop)
∀prop.asserted prop ⊃ holds prop

¬asserted ul
asserted shoot
¬asserted heartattack

holds heartattack ∧ ¬ab6 ⊃ fatalheartattack

holds shoot  ∧ ¬holds ul ⊃ shotfred

killfred shotfred
killfred fatalheartattack
¬killfred unload

∀prop.[killfred prop ∧ holds prop ∧ ¬ab1(prop) ⊃ ¬alive ∧ ¬ab17]

¬ab17 ∧ [∀prop.killfred prop ⊃ ¬holds prop] ⊃ alive


Situation calculus version (with minimal other quantification)

∀prop.¬asserted prop ∧ holds prop ⊃ ab(prop)
∀prop.asserted prop ⊃ holds prop
These two axioms are just as in the non situation calculus version.

∀s.¬asserted occurs(unload,s)
∀s.¬asserted occurs(heartattack,s)
∀s.asserted occurs(shoot,s) ≡ s = r(wait,r(load,S0))
asserted holds holds1(alive,S0))

(∀p e s)(holds holds1(p,s) ∧ ¬alters(e,p) ∧ ¬ab1(p,e,s) 
	⊃ holds holds1(p,r(e,s)))

¬alters(wait,loaded)
¬alters(wait,alive)
¬alters(load,alive)

If the $¬alters$ axioms are to be obtained by circumscription, it
can be a circumscription done before a specific situation is
considered, because the statements don't have a situation
parameter.
persistent p ∧ holds(p,t) ∧ (∀e)(causes(e,not p,t) ⊃ ¬occurs(e,t)) ⊃ holds(p,t+1)

persistent loaded

persistent not loaded

persistent alive

persistent not alive

holds(loaded,t) ⊃ causes(shoot,not alive,t)

causes(shoot,not loaded,t)

causes(unload,not loaded,t)

causes(load,loaded,t)

causes(e,p,t) ∧ occurs(e,t) ⊃ holds(p,t+1)

not not p = p

****
Suppose we had these sentences

holds(alive,t0)

occurs(load,t0)
¬occurs(unload,t0)
¬occurs(shoot,t0)

¬occurs(load,t0+1)
¬occurs(unload,t0+1)
¬occurs(shoot,t0+1)

¬occurs(load,t0+2)
¬occurs(unload,t0+2)
occurs(shoot,t0+2)

***
(∀p t)(holds(p,t) ∧ (∀e)(causes(e,not p,t) ⊃ ¬occurs(e,t)) ⊃ holds(p,t+1))

(∀e p t)(causes(e,p,t) ∧ occurs(e,t) ⊃ holds(p,t+1))

(∀t)causes(load,loaded,t)

(∀t)(holds(loaded,t) ⊃ causes(shoot,not alive,t))

holds(alive,0)

occurs(load,0)

occurs(wait,1)

occurs(shoot,2)

% Vladimir points out that when we minimize  causes,  we get the
% unwanted model by having  causes(wait,not loaded,1),  thereby avoiding
% causes(shoot,not alive,2).  He also remarks that he got his version
% of  causes  and  precond,  passing through a stage similar to this.
See slices[dra,val]

causes(shoot,alive,false)

precond(loaded,shoot,alive,false)

causes(load,loaded,true)

(∀p t)(holds(p,t) ∧ (∀e)(¬occurs(e,t) ∨ ¬causes(e,p,false)
 ∨ (∃q)(precond(q,e,p,false) ∧ ¬holds(q,t)) ⊃ holds(p,t+1))

(∀e p t)(causes(e,p) ∧ (∀q)(precond(q,e,f,v) ⊃ holds(q,t)) ⊃ value(f,t+1) = v))


∂29-Mar-88  1324	VAL 	re: YSP   
[In reply to message rcvd 29-Mar-88 09:37-PT.]

I agree. Here is a formulation that allows additional events. It can be used
with both discrete and continuous time. Notation: success(e,t) stands for

	occurs(e,t) ∧ ∀f[precond(f,e) ⊃ value(f,t) = true],

and affects(e,f,t) stands for

	success(e,t) ∧ ∃v causes(e,f,v).

The law of change:

success(e,t) ∧ causes(e,f,v) ⊃ ∃t'[t<t' ∧ ∀t''(t<t''≤t' ⊃ value(f,t'') = v)].

The law of inertia:

t<t' ∧ ¬∃et''[t≤t''<t' ∧ affects(e,f,t')] ⊃ value(f,t') = value(f,t).

We minimize "occurs" along with "causes" and "precond".